﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Sinacor.Tools;

namespace Sinacor.Tools.Web.ConstantesErro
{
    public partial class frmTipoMensagem : BasePage
    {

        #region Métodos
        protected override void preencherGrid(string sortExpression)
        {
            Negocio.TipoMensagem mensagem = new Negocio.TipoMensagem();
            this.grdTipoMensagem.DataSource = mensagem.consultar(this.preencherEntidade(sortExpression));
            this.grdTipoMensagem.DataBind();
        }

        protected override void preencherGrid()
        {
            this.preencherGrid(string.Empty);            
        }

        
        private Entidade.TipoMensagem preencherEntidade(string sortExpression)
        {
            Entidade.TipoMensagem tipoMensagem = new Entidade.TipoMensagem();
            if (! string.IsNullOrEmpty(sortExpression))
                Entidade.TipoMensagem.PropriedadeSort = sortExpression;

            if (this.hdnCodigo.Value.Trim() != string.Empty)
            {
                tipoMensagem.Id = Convert.ToByte(this.hdnCodigo.Value);
            }

            if (this.txtDescricao.Text.Trim() != string.Empty)
            {
                tipoMensagem.Descricao = this.txtDescricao.Text.Trim();
            }

            return tipoMensagem;
        }


        private Entidade.TipoMensagem preencherEntidade()
        {
            return this.preencherEntidade(string.Empty);
        }
        #endregion




        #region Eventos

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                Negocio.TipoMensagem nTipoMensagem = new Negocio.TipoMensagem();
                Entidade.TipoMensagem tipoMensagem = this.preencherEntidade();
                nTipoMensagem.salvar(tipoMensagem);
                this.preencherGrid();
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            try
            {
                this.preencherGrid();
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void grdTipoMensagem_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                paginar(sender, e);
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }

        }

        protected override void Page_Load(object sender, EventArgs e)
        {
            try
            {
                base.Page_Load(sender, e);
                if (!this.Page.IsPostBack)
                {
                    preencherGrid();
                }
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void grdTipoMensagem_Sorting(object sender, GridViewSortEventArgs e)
        {
            try
            {
                this.preencherGrid(e.SortExpression);
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void Deletar_Click(object sender, ImageClickEventArgs e)
        {
            Negocio.TipoMensagem nTipoMensagem = new Negocio.TipoMensagem();
            try
            {
                nTipoMensagem.deletar(this.preencherEntidade());
                limparCampos();
                this.preencherGrid();
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        private void limparCampos()
        {
            this.hdnCodigo.Value = string.Empty;
            this.txtDescricao.Text = string.Empty;
            this.txtCodigo.Text = string.Empty;

        }

        #endregion

        protected void grdTipoMensagem_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                setDefaultGridStyle(e, string.Empty);
            }
            setGridCellStyle(e.Row, false);
        }

        
    }
}
